# graphics/draw_flag.py
# 负责在屏幕上绘制旗帜
# 画一个简单的旗帜：旗杆 + 旗帜布

import pygame
from config import FLAG_COLOR, POLE_COLOR


def draw_flag(screen, flag):
    """
    在指定的 screen 上绘制旗帜

    旗帜由两部分组成：
        - 旗杆（灰色竖线）
        - 旗帜布（彩色矩形）

    参数:
        screen: Pygame 的屏幕对象 (pygame.Surface)
        flag: Flag 类的实例
    """
    if flag.collected:
        # 可选：收集后不显示，或显示为灰色
        return  # 收集后隐藏

    # === 1. 画旗杆（pole）===
    pole_start = (flag.x, flag.y)                    # 顶部
    pole_end = (flag.x, flag.y + flag.height)        # 底部
    pygame.draw.line(screen, POLE_COLOR, pole_start, pole_end, width=3)

    # === 2. 画旗帜布（flag body）===
    # 旗帜布位于旗杆左侧或右侧
    flag_rect = [
        flag.x + 5,           # left（在旗杆右边）
        flag.y + 5,           # top（略低于顶部）
        flag.width - 10,      # width
        flag.height // 3      # height
    ]
    pygame.draw.rect(screen, FLAG_COLOR, flag_rect)